The Internet of Things (“IOT”) refers to the network of systems, devices, and/or physical objects (collectively referred to as “systems”) existing in the real world, ranging from automobiles to heart monitors. These physical objects and/or devices are equipped and/or embedded with software, sensors, electronics, communication means and the like, that enable them to, among other things, communicate and exchange data. The number of systems that make up the Internet of Things is rapidly growing. Some industry analysts have estimated that the number of connected systems (in an industrial, consumer, government, medical, and business setting) may rise from five billion to one trillion over the next ten years.
In light of the rapid expansion of the Internet of Things, mashups are being developed and used to more efficiently and effectively manage, receive, and output the large amount of data associated with billions of systems. Mashups are applications (e.g., Web applications) and/or Web pages that collect, retrieve and/or use content (e.g., resources, data, services) from multiple and different sources (e.g., Web pages, Web services) to create and/or provide new services, resources, information, and the like. For example, a mashup application may (1) collect location information and data stream (e.g., usage information) associated with a set of interconnected systems, and (2) use a map web service provided by another system (e.g., Google Maps), to generate and/or display the each of the set of interconnected systems plotted on a map, along with corresponding information, such as data streams shown as gauges (e.g., usage information).
The development of mashup applications and/or Web pages is often time consuming and costly due to the complexities of, among other things, accessing and aggregating data from the connected devices. These complexities are caused, for example, by the use of real-time data by mashup applications and/or Web pages (e.g., real-time data applications). Real-time data is information that is collected and/or made available by mashup applications and/or Web pages immediately (or shortly after) it is made available by its source. Real-time data is most useful at or around the time that it is made available by its source, and its usefulness reduces as time passes (e.g., as the data becomes “older”). For example, real-time (e.g., current) temperature and weather data is most useful at the time that it is retrieved and/or made available, rather than at a later time when that temperature and weather data becomes less useful and/or obsolete.
Other complexities in the development of mashup applications and/or Web pages are caused by real-time data residing on (e.g., being stored on or generated by) different types of platforms (e.g., systems, devices). These platforms are typically managed by a variety of sources and/or third party entities. These various sources and/or third party entities make real-time data accessible, from their particular platforms, through their specific Web services and application programming interfaces (API). Examples of real-time Web services (and their data) include social feeds (e.g., Twitter), Web chat services, live charts, on-screen dashboards, activity streams, and real-time Web analytics. Real-time Web services may include functions performed by enterprise software and systems, such as customer relationship management and enterprise resource planning (CRM/ERP) systems, data warehouses and Hadoop services. Real-time data may include data stored in relational databases, and time series data (e.g., sequence of data points) acquired from sensors and electronic devices embedded in machinery. For example, such machinery may correspond to and/or be in an industrial facility, a medical facility, an energy generation and distribution facility, a freight and passenger transportation facility, and the like.
Due to the variety of systems, interfaces, protocols and the like that are used in mashup applications and/or Web pages, their development often requires developers to understand and employ multiple programming languages, technologies and protocols. For example, to create a simple real-time Web application with mashups, a developer may need programming proficiency in extensive markup language (XML), JavaScript, Hypertext Markup Language (HTML) and Cascading Style Sheets (CSS), as well as Web APIs and protocols of various sources web service that are providing the services, resources and/or data. Moreover, such real-time Web applications with mashups may require developers to have proficiency in networking and the hardware specifications of the variety of computing devices that are to consume (e.g., collect, read, retrieve, download, use) the data and/or services provided by the Web application.
Additionally, mashup applications and/or Web pages use and are deployed to a heterogeneous environment. A heterogeneous environment refers to a computing environment in which hardware and software varies among the systems in the environment. As a result, a mashup application that is to be used by two different systems in a heterogeneous environment must be tested specifically for the technical specifications of each of the two systems. Such testing may include, for example, ensuring that the processing capabilities of each system are sufficient to use the application, and that the application is compatible with the operating system of each of the systems.
In fact, because the Internet of Things is still developing, companies, organizations and the like may not yet realize the benefits provided by mashup applications and/or Web pages, real-time data, and the services and products thereby enabled. In that regard, consumers, business users, and industrial users in such companies and organizations are well suited to develop such mashup applications and/or Web pages, and services and products employing real-time data, because they understand their companies and organizations, as well as their particular needs (e.g., business needs). Yet, the complexities described above, among others, create technical barriers in developing, accessing, testing and managing mashups such as real-time Web applications.
There is a need, therefore, for systems and methods for making the development of mashup applications and/or Web pages including real-time Web services and real-time data in a more cost and time efficient manner. There additionally exists a need for systems and methods that allow for testing mashup applications and/or Web pages, including testing code of classes of Web objects that employ real-time data and services.